﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace SanguoSharp
{
    public interface IPublicPlayerView : IIdentificable
    {
        /// <summary>
        /// Gets the value indicating wheter the player is a sheriff.
        /// </summary>
        bool Is主公 { get; }
        /// <summary>
        /// Gets the value indicating wheter the player is alive.
        /// </summary>
        bool IsAlive { get; }
        /// <summary>
        /// Gets the value indicating wheter the player is a winner.
        /// </summary>
        bool IsWinner { get; }
        /// <summary>
        /// Gets the number of life points of the player.
        /// </summary>
        int LifePoints { get; }
        /// <summary>
        /// Gets the maximum number of life points of the player.
        /// </summary>
        int MaxLifePoints { get; }
        /// <summary>
        /// Gets the collection of the cards that the player is holding in his hand.
        /// </summary>
        ReadOnlyCollection<ICard> Hand { get; }
        /// <summary>
        /// Gets the collection of the cards that the player has on the table.
        /// </summary>
        ReadOnlyCollection<ICard> Table { get; }
        /// <summary>
        /// Gets the character of the player.
        /// </summary>
        CharacterType CharacterType { get; }
        /// <summary>
        /// Gets the collection of characters whose abilities the player gained thanks to his main character.
        /// </summary>
        ReadOnlyCollection<CharacterType> AdditionalCharacters { get; }
        /// <summary>
        /// Gets the role of the player.
        /// </summary>
        Role Role { get; }
    }
}
